/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.giant.bean.parametrics;

import com.giant.entities.InOpCen;
import com.giant.exceptions.OperacionInvalidaException;
import com.giant.services.parametrics.ServiceOpCenLocal;
import java.io.Serializable;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.ejb.EJB;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.context.FacesContext;
import org.primefaces.context.RequestContext;
import org.primefaces.event.SelectEvent;
import org.primefaces.event.UnselectEvent;

/**
 *
 * @author taticay
 */
@ManagedBean
@SessionScoped
public class OpCenBean implements Serializable {

    /**
     * Relación con la interfaz que provee los servicios necesarios del vendedor
     */
    @EJB
    private ServiceOpCenLocal serviceOpCen;
    //-----------------------------------------------------------
    // Atributos
    //-----------------------------------------------------------
    /**
     * Representa un nuevo operation center
     */
    private InOpCen opCen = new InOpCen();
    /*
     * Representa un operation center seleccionado
     */
    private InOpCen selectedOpCen;

    /**
     * Creates a new instance of OpCenBean
     */
    public OpCenBean() {
    }

    //-----------------------------------------------------------
    // Getters y setters
    //-----------------------------------------------------------
    /**
     * Devuelve el objeto de vendedor actual
     *
     * @return vendedor Vendedor actual
     */
    public InOpCen getOpCen() {
        return opCen;
    }

    /**
     * Modifica al vendedor actual
     *
     * @param vendedor Nuevo vendedor
     */
    public void setOpCen(InOpCen opCen) {
        this.opCen = opCen;
    }

    /**
     * Devuelve todos los vendedores del sistema
     *
     * @return vendedores Lista con todos los vendedores del sistema
     */
    public List<InOpCen> getOpCens() {
        return serviceOpCen.getOpCen();
    }

    public boolean saveOpCen() {
        boolean ret = true;
        try {
            serviceOpCen.agregarOpCen(opCen);
            FacesContext context = FacesContext.getCurrentInstance();
            context.addMessage(null, new FacesMessage("Successful", "Successful save!"));
            opCen = new InOpCen();

        } catch (OperacionInvalidaException ex) {
            Logger.getLogger(OpCenBean.class.getName()).log(Level.SEVERE, null, ex);
            ret = false;
        }

        return ret;
    }

    public InOpCen getSelectedOpCen() {
        return selectedOpCen;
    }

    public void setSelectedOpCen(InOpCen selectedOpCen) {
        this.selectedOpCen = selectedOpCen;
    }

    public void onRowSelect(SelectEvent event) {
        
        opCen=(InOpCen) event.getObject();
        FacesContext context = FacesContext.getCurrentInstance();
        context.addMessage(null, new FacesMessage("Car Selected", ((InOpCen) event.getObject()).getIdOpCen() + ""));
    }

    public void onRowUnselect(UnselectEvent event) {
        FacesContext context = FacesContext.getCurrentInstance();
        context.addMessage(null, new FacesMessage("Car UnSelected", ((InOpCen) event.getObject()).getIdOpCen() + ""));
    }
    
     public void resetFail() {
         System.out.println("clear form");
        opCen = new InOpCen();
        RequestContext.getCurrentInstance().reset("j_idt20:form:editPanel");
    }
}
